package com.py.credit.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.springframework.web.multipart.MultipartFile;

import com.py.credit.common.ServiceException;
import com.py.credit.entity.SysUser;
import com.py.framework.core.common.Page;

public interface EnterpriseFamilyService {

	/**
	 * 获取列表
	 * 
	 * @return
	 */
	public List<Map> selectByConditionForPage(@Param(value = "columns") List<String> columns,
			@Param(value = "additionalColumns") String[] additionalColumns,
			@Param(value = "condition") String condition, @Param(value = "page") Page page,
			@Param(value = "mainType") String mainType);

	public List<Map> selectAll(String mainType, @Param(value = "list") List<String> list,
			@Param(value = "batchId") String batchId);
	
	public List<String> selectTybmByLimit(@Param(value = "mainType") String mainType,
			@Param(value = "start") int start,@Param(value = "size") int size);
	
	public Long selectCountAll(@Param(value = "mainType") String mainType);

	public List<Map> autoScoreByIndexSql(@Param(value = "mainType") String mainType, @Param(value = "sql") String sql,
			@Param(value = "listSelected") List<String> listSelected, @Param(value = "batchId") String batchId);

	public Map getBaseIngfo(@Param(value = "A000001") String A000001, @Param(value = "A000002") String A000002);

	public List<Map> getLicense(@Param(value = "A000001") String A000001, @Param(value = "A000002") String A000002);

	public List<Map> getPunish(@Param(value = "A000001") String A000001, @Param(value = "A000002") String A000002);

	public List<String> getHighManager(@Param(value = "A000001") String A000001,
			@Param(value = "A000002") String A000002);

	public List<String> getBranch(@Param(value = "A000001") String A000001, @Param(value = "A000002") String A000002);

	public List<String> getHolder(@Param(value = "A000001") String A000001, @Param(value = "A000002") String A000002);
	
    public List<String> getEnterInvest(@Param(value = "A000001") String A000001, @Param(value = "A000002") String A000002);
	
	public List<String> getFrInvest(@Param(value = "A000001") String A000001, @Param(value = "A000002") String A000002);

	public Map getChart(@Param(value = "A000001") String A000001, @Param(value = "A000002") String A000002);

	public List<String> selectBatchExport(@Param(value = "mainType") String mainType,
			@Param(value = "batchId") String batchId);

	public String doUploadFile(MultipartFile file, SysUser userInfo, String absolutepath, String mainType)
			throws ServiceException, Exception;

	public List<Map<String, Object>> selectBatchExportForPage(List<String> showColumns, String[] additionalColumns,
			String condition, Page page, String batchId, String mainType);

	public int selectNoRepeatCount(@Param(value = "mainType") String mainType,
			@Param(value = "batchId") String batchId);

	public int selectRightAllCount(@Param(value = "mainType") String mainType,
			@Param(value = "batchId") String batchId);

	public int selectErrorCount(@Param(value = "mainType") String mainType, @Param(value = "batchId") String batchId);

}
